Item recommendation

ABSTRACT

A method is described for making a recommendation for an item. The method may include the operation of presenting a recommendation interface control to a user on a client device after the user has consumed an item. Using the recommendation interface control, the user then selects an individual and adds the name of the item the user consumed to the selected individual&#39;s recommendation list.

BACKGROUND

The ability to share recommendations with others has evolved well beyondjust passing along a recommendation by word of mouth. Manyrecommendation options are now available that may include among othersmethods: sending a recommendation to one or more persons via email,texting, instant message, or posting a recommendation on a socialnetworking site. For example, a recommender may want to recommend amovie that the recommender has just finished watching online. Therecommendation may be sent to a friend in an email or the recommendermight post the recommendation to a social networking site. Althoughconvenient, these methods have drawbacks that may result in therecipient not taking advantage of the recommendation.

Drawbacks may include recommendations that are lost or forgotten by therecipient, or where the intended recipient may not have viewed therecommendation. For example, recommendations sent in an email may end upin an inbox cluttered with junk mail and other non-related messages.Then to later use the email containing the recommendation, the recipientmay need to search the inbox to find the recommendation. In anotherscenario involving email, the recipient's mailbox may become sooverwhelmed by the number of emails containing recommendations that therecipient may be unable or unwilling to keep up with the volume. Inanother situation concerning social media, recommendations posted to asocial networking site may quickly become stale as new postings aremade, and those who occasionally log into the site may not see therecommendation.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating a method for recommending a media item.

FIG. 2 a-2 c are illustrations that depict examples of user interfacesassociated with item recommendation.

FIG. 3 is a drawing that depicts an example of a page illustratingaccess to content and associated recommendations.

FIG. 4 is a drawing that depicts an example of a page illustratingaccess to content and a recommendation success rate.

FIG. 5 is a block diagram illustrating an example system forrecommending an item.

FIG. 6 is flowchart illustrating an example of a method for recommendingan item.

FIG. 7 is a schematic diagram illustrating an example environment forimplementing the technology to recommend an item.

FIG. 8 is block diagram illustrating an example of a computing devicethat may be used for recommending an item.

DETAILED DESCRIPTION

A technology is described to allow a recommender to make recommendationsto others for items that the recommender has consumed. For example, atthe conclusion of viewing a video streamed over the internet, a user maywant to recommend the video to others that the user has reason tobelieve would also want to watch the video. Using the system that theuser used to watch the video, the user at the conclusion of the videomay be presented with an option that enables the user to select one ormore of the user's associates. An associate may be a friend, a familymember, work associate, or just an acquaintance of the user. After theuser has selected an associate, the title of the video then may beplaced in a list or queue that belongs to the associate but the list isopen to others so that others may place recommendations into the list.The next time the associate logs into the associate's account, the titleof the video that the user added to the associate's recommendation listmay be available to the associate. The terms list and queue, may be usedinterchangeable throughout this discussion.

In addition to recommending videos, as further described below,recommendations may be made for various other types of media such asmovies, TV programs, music, audio books or any other type of media thata user may consume via the system. Also recommendations for retail itemsmay be added to an associate's recommendation list. For example, whileshopping at an online retailer, a user may have purchased an item thatthe user knows a friend has been looking for at a certain price. At theconclusion of the checkout process, the user may be presented with adialog that enables the user to select the friend from a number of theuser's friends and associates and make a recommendation to the friendthat the friend buy the item. The name of the recommended item may thenbe added to the friend's social item queue alerting the friend that theitem has been recommended by the user.

FIG. 1 provides an example of a networked computing environment 100illustrating item recommendation. The networked environment 100 mayinclude one or more computing devices 110 that are in data communicationwith one or more client devices 125 by way of a network 140. The network140 may include an intranet, the Internet, a local area network, a widearea network, a wireless data network, or any other network orcombination thereof. Communication over the network may be enabled bywired or wireless connections and combinations thereof. A client device125 may be, but not limited to, a desktop computer, a laptop, atelevision, a car navigation system, or any device with a display thatmay receive and present the page content. Additionally, the clientdevice 125 may be a mobile device. In one example, the mobile device isa tablet device, a cell phone, a laptop computer, an electronic bookreader, set-top box, game console, heads up display (HUD) glasses, oranother mobile computing device.

In this example, a user that has accessed an item using a client device125 may, as in 115, be presented with a recommendation interface controlthat may be executed using the client device 125. The recommendationinterface control may be presented from the computing device 110 over anetwork 140 to the client device 125. For example, a user that hasaccessed a movie using a mobile device may be presented with a dialogthat gives the user the ability to send a recommendation for the movieto an associate. The recommendation interface control may be presentedafter the user has finished watching the movie, after the user pausesthe movie, after the user stops the movie, and/or after the user haspurchased the movie. As a further example, a user may watch a portion ofa movie and be inspired to share a recommendation with an associate whothe user believes would be interested in the movie. Rather than makingthe recommendation after the movie has finished, the user may insteadwant to pause the movie and make the recommendation while the thought isfresh in the user's mind. In another example, should the user decide notto watch the entire movie, the user may still recommend the movie to anassociate despite having not finishing the movie.

As in 120, at least one associate that may be available to receive arecommendation may be identified. The identification of at least oneassociate may be sent from the computing device 110 over a network 140to the client device 125. For example, associates that the userinteracts frequently with may be cached in the computing device 110 andmay be identified as being available to receive a recommendation. Theuser's associates may be stored as an unorganized list of associates,stored alphabetically, listed by priority, listed by number ofrecommendations, or the user may organize the user's associates into agroup of associates defined by an associate's relationship to the user.To illustrate, associates may be grouped according to a familyrelationship, or some other relationship such as coworker, sports teammember, or student. By organizing associates into groups, the process in120 may identify the groups as available to receive a recommendation.

In another example, a group of associates may be identified where theuser belongs to a group of associates having an interest in a topicalcategory that is shared among the group of associates. In other words,the user may join a group where a topical category that the user enjoysis shared among the group. To illustrate, a user that enjoys cooking mayjoin a group that has a topical category of “cooking”. Members of thisgroup may recommend to each other cooking videos, instructional cookingTV shows, cooking audio books, etc. When the operation in 120 identifiesassociates available to receive a recommendation and the topicalcategory of the media item accessed is “cooking”, the operation mayidentify the “cooking” group as being available to receive arecommendation.

As in 130, associates selected by the user may be identified and sentover a network 140 from the client device 125 to the computing device110. Selected associates may entail one associate, or may comprise aplurality of associates. For example, the user may want to recommend anature video which the user accessed to the user's associates Bob andJim. The user may select Bob and Jim from the list of availableassociates and the operation in 130 may identify Bob and Jim as beingselected to receive the recommendation. Also, as described above,associates may be grouped together allowing a user to select a group ofassociates that then may be identified by the process in 130. Borrowingfrom the example above where a user belongs to a group having a mediacategory of “cooking”, the user may have watched a cooking instructionalvideo and now may want to share the video with the cooking group. Theuser may select the cooking group and the operation in 130 may identifythe group as being selected to receive the recommendation.

As in 135, after the selected associates have been identified, the titleof the item accessed by the user may be added to the selectedassociate's social queue, thereby making a recommendation for the itemto the selected associates. A social queue may be a queue that belongsto an associate. The associate's social queue may be made available tothe user for receiving recommendations (and probably not for viewing byanyone besides the associate) so that recommendations for items may beadded to the social queue. A recommendation may be added to a socialqueue by placing the title of an item into the associate's social queue.As an example, a user who accessed a TV series may want to recommend theTV series to a coworker. After selecting the coworker, the name of theTV series then may be added to the coworker's social queue, resulting ina recommendation for the TV series made to the coworker. A similarrecommendation may be made for a purchased item. Where a user haspurchased a new garlic press, the user may receive an email later with arequest to provide a review on the garlic press product. The email mayalso include an interface (e.g. button) to recommend the garlic press toan associate if they liked the garlic press.

In addition, a recommendation may be added to a plurality of socialqueues for a group of associates. For example, as described above,associates may be grouped based upon an associate's relationship to theuser. When a user selects a group of associates, the title of the mediaitem may be added to the social queues of the group. To illustrate,where a group of family members may be composed of a brother, sister andcousin, the title of the media item may be added to the brother's socialqueue, the sister's social queue and the cousin's social queue.

As is described above, a user may join a group of associates having aninterest in a media category that is shared among the group ofassociates. The title of a media item may be added to a social queuethat is shared by the group of associates. Again using the example ofthe media category of “cooking”, a user may add a media item titled“cooking made easy” to a social queue that is accessible to the membersof the cooking group.

In an example, subsequent to adding a title of an item to an associate'ssocial queue, the title of the item may be presented to the associatewhen the associate's social queue is next accessed by the associate. Inother words, the next time that the associate accesses the associate'ssocial queue, the title of the item may be visible to the associate.

In another example, subsequent to adding a title or name of an item toan associate's social queue, the associate may be presented with anacceptance interface control 340 (e.g., accept or reject buttons) thatmay allow the associate to accept the recommendation. To illustrate, auser may have added a title of a movie to the associate's social queuethat the user enjoyed. Using a client device 125, the associate mayaccept the movie recommendation and the movie title may remain in theassociate's social queue. Should the associate not have an interest inwatching the recommended movie, the associate may decline to accept therecommendation and the title of the movie may be removed from theassociate's social queue.

In an example where the user may want to include a text comment with arecommendation, the text comment along with the title of a media itemmay be added to an associate's social queue. When the associate nextaccesses the associate's social queue, the text comment may be availableto the associate to read. To illustrate, a user may want to recommend amovie to a friend, but may want to warn the friend about a certain scenein the movie. The user may include the comment “Great movie, but theshower scene was terrifying”. The comment along with the movie title“Psycho” may be added to the friend's social queue for the user toaccept or reject.

In addition to an associate accessing the associate's social queue toview recommendations made to the associate, a visual indicator may beincorporated into a media item description that informs an associatethat the user has added the title of the media item to the associate'ssocial queue. To illustrate, as an associate browses through moviedescriptions looking for a movie that the associate may want to watch, avisual indicator such as text or an icon may be incorporated into themovie description letting the associate know that the movie is in theassociate's social queue.

Moving now to FIG. 2 a, an example of a user interface 205 is depictedas may be rendered by a client device 200. In this example, the clientdevice 200 may be a mobile device such as a smartphone or tabletcomputer. The user interface may include an integrated media player fordisplaying and playing a media file 220, an interface control fordisplaying the title 225 of the media that the user accessed and abutton 210 for recommending the media title to a friend. In thisexample, the user of the client device 200 has consumed a video. Thetitle 225 indicates that the user has just watched a video entitled “HowThings Work”. Upon consuming the video, the button 210 may be presentedto the user enabling the user to add the title of the video file to afriend's social queue.

FIG. 2 b provides a further example of a user interface where a user hasselected the button 210 (FIG. 2 a) to add a video to a friend's socialqueue. The user is presented with a selection interface control 230containing a menu. The menu items may include options to “Select fromlist of friends” 235, “Select from groups” 240, or “Search for friends”245. The option to “Select from list of friends” 235 may present to theuser a list of friends and the user then may choose from the list.Whereas the option to “Select from groups” 240 may present to the user alist of groups that the user may have created or groups that have beenpredefined. Last, the option to “Search for friends” 245 may enable theuser to search a data store for the user's friends or to findindividuals that the user would like to add as friends.

FIG. 2 c depicts an example interface control 250 that may be renderedon a client device subsequent to selecting a menu option from theselection interface control 230 (FIG. 2 b). The interface control 250may contain a list of friends 255 that are available to receive arecommendation for the video consumed by the user. The user may chooseone or more friends from the list and then select the add recommendationbutton 260 to add the recommendation to the friend's social queue.

FIG. 3 is one example of a page 300 as rendered by a client device. Inthis non-limiting example, a user is logged into an online retail mediastore 305 and is presented with a page that contains the user's account310 information. The account information may include a user's watch list315 and a user's social list 320. The user's watch list 315 may containa list of media titles 325 that the user has added to the list. Theuser's watch list 315 may be a list of media titles 325 that the userhas an interest in viewing. The watch list 315 may be exclusive to theuser where the user may add and remove media titles 325 from the listand the user may view the contents of the list. Whereas the social list320 may or may not be open to other individuals who the user has grantedpermission to add media titles 325 to the social list. Media titles 325added to the user's social list may include the name of the recommender335.

Another example page 400 as rendered by a client device is illustratedin FIG. 4. Shown is an online retail media store 405 where a user maysearch or browse for a movie. A number of movie choices 415 may bepresented to the user from which the user may make a selection. A moviechoice 415 may include a visual indicator 420 that may alert a user thata recommender may have added the movie choice 415 to the user's sociallist.

Also a recommendation success rate 425 may be displayed along with therecommender's name. A recommender may be assigned a success rate wherethe success rate is determined by the number of recommendations that areaccepted or rejected by an associate or referred user. For example, auser may accept or reject a recommendation that may be added to theuser's social list. When a recommendation is accepted by the user, thesuccess rate of the recommender may increase. The inverse may be truefor recommendations that are rejected by the user causing therecommender's success rate to decrease. A higher success rate mayindicate to a user that recommendations made by the recommender may beof value as compared to recommenders with low success rates. A successrate 425 may be displayed as a star rating, an award rating, apercentage, or by any visual depiction that may show the success ofrecommendation acceptance. For example, in FIG. 4 the recommender Machas a two star success rate 425, whereas the recommender Kim has a fourstar success rate 430. Kim's recommendation success rate 430 may behigher as indicated by the number of stars as compared to Mac'srecommendation success rate 425 of two stars.

FIG. 5 provides an example of a networked computing environment 500 forthis technology. The networked computing environment 500 may include oneor more computing devices 510 in data communication with one or moreclient devices 570 by way of a network 565. The network 565 may includeany useful computing network, including an intranet, the Internet, alocal area network, a wide area network, a wireless data network, or anyother such network or combination thereof. Components utilized for sucha system may depend at least in part upon the type of network and/orenvironment selected. Communication over the network may be enabled bywired or wireless connections and combinations thereof.

The computing devices 510 may comprise, for example, a server computeror any other system providing computing capability. Alternatively, aplurality of computing devices 510 may be employed that are arranged,for example, in one or more server banks or computer banks or otherarrangements. For purposes of convenience, the computing device 510 isreferred to in the singular, it is understood that a plurality ofcomputing devices 510 may be employed in the various arrangements asdescribed above.

Various processes and/or other functionality may be executed in thecomputing environment 500 according to various embodiments. Also,various data may be stored in a data store 515 that is accessible to thecomputing device 510. The term “data store” may refer to any device orcombination of devices capable of storing, accessing, organizing and/orretrieving data, which may include any combination and number of dataservers, relational databases, object oriented databases, cloud storagesystems, data storage devices, data warehouses, flat files and datastorage configuration in any centralized, distributed, or clusteredenvironment. The storage system components of the data store 515 mayinclude storage systems such as a SAN (Storage Area Network), cloudstorage network, volatile or non-volatile RAM, optical media, orhard-drive type media. The data store 515 may be representative of aplurality of data stores 515.

The data stored in the data store 515 may include, for example, anassociation store 520 and an item library 540. The association store 520may include a private item queue 525, a social item queue 530 andassociate lists 535. A private item queue 525 may be a queue that isowned by a user. A watch list 315 (FIG. 3) may be an example of aprivate item queue 525 and similarly, a private item queue 525 may besuch that the user may add items or remove items from the queue and thequeue itself and the items contained within the queue are visible to theuser alone. An example of media items that may be contained in a privateitem queue 525 may include items such as movie titles, TV titles, videotitles, audio book titles, and/or any other type of media item that maybe referenced by placing a description in a queue. For example, while auser is browsing through a media library catalog, the user may comeacross a movie that the user is interested in viewing sometime in thefuture. The user may add the title of the movie to the user's privateitem queue 525 so that the user may come back to the private item queue525 at a later time to find the movie reference when the user is readyto view the movie. Another example of items that may be added to aprivate item queue 525 are retail product and service descriptions ofitems such as household item names, clothing items, electronic items,physical goods, online services, local services that may be available topurchase from an online retailer and that the user may want to purchaseat a later date. For example, a user may be shopping for a particularitem but the user is not ready to make a purchase until the item isoffered at a lower price. The user may add the item to the user'sprivate item queue 525 and reference the queue when the item is offeredat a price that is acceptable to the user. And in another example, auser may want to add a service item to the user's private item queue525, for instance an online music service that the user may beinterested in but is not ready to subscribe to. It will be appreciatedthat a private item queue 525 may contain a combination of media items,retail product items and/or service items, or that a plurality ofprivate item queues 525 may be created allowing for queues that containmedia items separately and queues that contain retail product itemsseparately.

A social item queue 530 may be a queue that is owned by the user, butmay or may not be visible to the user's associates and may be open toreceive recommendations from the associates so that the associates mayadd recommendations for items by adding the name of an item to theuser's social item queue 530. A social list 320 (FIG. 3) as describedabove may be an example of a social item queue 530. Recommendations foritems added to the user's social item queue 530 by the user's associatesmay then be available to the user via the social item queue 530.Examples of recommended items that may be added to the social item queue530 are the same as those items that may be added to a user's privateitem queue 525, as explained above.

A user's associates may be stored in the association store 520 in anassociate list 535. An associate may be a user's friend, family member,coworker, electronic acquaintance or any other person having arelationship with the user. In one example, a user may add an associateto the associate list 535, and in another example an associate may makea request to the user to add the associate to the associate list 535.

Associates may be grouped or categorized within the associate list 535by the user depending upon the user's preferences. A user may set upgroupings where associates are grouped together based upon therelationship of the associate to the user. For example, a user may wantto group the associates based upon the user's relationship to theassociate, such as by family member, coworker, church member, etc. Forinstance, a user may want a group that includes immediate family membersso that the user may recommend items that are relevant to the family'simmediate circumstances. Also a user may want an associate group thatcontains members of the user's softball team, enabling the user torecommend purchase items that pertain to the sport of softball. As willbe appreciated, the number of possible groups that the user may createmay be vast, giving the user the flexibility to tailor recommendationsto a specific circumstance or preference of a group. Further, the usermay save time making recommendations to a group of associates byselecting the group rather than selecting each associate individually.

In addition to establishing groups of associates, a user may categorizeassociates based upon some other type of designation. Associates may becategorized based on interests such as those who enjoy horror movies, orthose who enjoy the outdoors, etc. Categorizing associates may enablethe user to make directed recommendations to a specific category ofassociates. For example, suppose a user has created a category ofassociates who are horror movie enthusiasts. After viewing a horrormovie that the user thought was exceptionally scary, the user may add arecommendation for the horror movie to the plurality of social itemqueues 530 for a group of associates that the user has categorized as“horror movie lovers”. As was described above, categorizing associatesmay save the user time, the user may simply select a category, forinstance “horror movies”, and the recommendation then may be made to theuser's associates who are in that category.

The item library 540 may include items 545 and item descriptions 550.Items 545 may include media items, services and various products that auser may purchase or rent from an online retailer. Item descriptions 550may include descriptions of a plurality of items, for example movies,videos, TV programs, user submitted video, audio books, podcasts,electronic books, electronic magazines, electronic periodicals, etc. Toillustrate, a movie description may include the title of the movie. Itemdescriptions 550 may also include other details about the media, such asauthors, performers, dates, ratings, reviews or other descriptionsassociated with the media. For example, an item description 550 for amovie may include the movie title, release date, film rating, genre,summary, cast and run time. These movie details may form an itemdescription 550 that may be included with a recommendation made to anassociate. Item descriptions 550 may also contain a plurality ofdescriptions for varying products and services that may be available topurchase from an online retailer. Item descriptions 550 may primarilycontain the names of products and services, but may also includeadditional details such as color, weight, country of origin, quantity,price, shipping information or any other information that may beassociated with the product or service. For example, a productdescription for a backpack may include the backpack's brand, color,material type, number of pockets, price, and shipping information. Thisinformation may form an item description 550 that may be included with arecommendation of the backpack to an associate. In another example, theitem description may be for a service such as an online music servicethat may include service details like monthly price, available musicfile formats, terms and conditions, etc. These details may be includedin a recommendation for the online music service.

A recommendation service 555 may be executed in the computing device 510that applies logic allowing a user to provide a recommendation to anassociate. The logic run by the recommendation service 555 may firstdetermine the item most recently consumed on a client device 570. Wherethe item most recently consumed is a movie for example, the logic maydetermine that the item consumed is a media item and that thedescription for the item may be found in the item library 540 within theitem descriptions 550. In another example where the item consumed is aproduct or service, the logic may determine that the item descriptionmay also be found in the item library 540 within the item descriptions550. Information about the item determined by the logic may be held inmemory and made available to subsequent logic and processes.

Next, logic may send a plurality of associates from the associationstore 520 to the client device 570. As described above, associates maybe grouped into associate groups based on an associate's relationship tothe user, or associates may be categorized based upon the interests ofthe associate. The logic may send a group of associates, a category ofassociates, and/or a list of the user's associates from the associationstore's 520 associate list 535 to the client device 570. In one examplewhere the user has consumed a horror movie, the logic may send to theclient device 570 a categorized group of associates that have beencategorized as horror movie enthusiasts based upon the associate'sconsumption patterns. In another example, a user may have purchased abook about financial security and the logic may send the client device570 a group of associates designated as a family group. And yet anotherexample may be where a user may have purchased a board game for socialgatherings and the logic may send to the client device 570 a generallist of associates (e.g., social friends).

After the plurality of associates are sent to the client device 570,logic then may obtain a selection of an associate from the plurality ofassociates from the client device 570. For example, after logic may senda plurality of associates (i.e., an associate listing) to the client, auser may then choose those associates that the user desires to send arecommendation. Using the client device 570, the user then may selectthe associate, and the selection then may be obtained by therecommendation service 555. After the associate that the user selectedhas been obtained, logic then may store a name of the item recommendedin a selected associate's social item queue 530. Further, where a userhas selected a plurality of associates to share an item recommendation,the item name may be stored in a plurality of social item queues 530owned by the plurality of associates.

In another example, the recommendation service 555 may further compriselogic that obtains a text comment entered by a user. The text commentthen may be stored in the selected associate's social item queue 530along with the name or title of the recommended item. To illustrate, inaddition to sending an associate a recommendation for an item, the usermay want to include a comment that goes along with the recommendation.For example, if the user is recommending a horror movie that the userfound especially scary, the user may want to include a comment warningthe associate that the user found the movie to be more frightening thanwhat was expected.

An item delivery service 560 may instruct physical delivery of items 545from the item library 540 to a client device 570 over a network 565. Thenetwork 565 may include any useful computing network, including anintranet, the Internet, a local area network, a wide area network, awireless data network, or any other such network or combination thereof.

A client device 570 may be a device such as, but not limited to, adesktop computer, a laptop, a tablet, a mobile device, a television, acell phone, a smartphone, a hand held messaging device, a set-top box, agaming console, a personal data assistant, an electronic book reader,heads up display (HUD) glasses, a car navigation system, or any devicewith a display that may receive and present the media content. Theclient device 570 may be used to view items 545 by means of an itemaccess application 580 that may communicate with the item deliveryservice 560 over the network 545. An item 545 may be viewed by a user ona display 585. In some examples, the client device 570 may include abrowser 575 that may be coupled with an item access application 580. Thebrowser 575 may enable a user to access an item 545 using the browser575.

Certain processing services may be discussed in connection with thistechnology. In one example configuration, a service may have one or moreprocesses executing on a server or other computer hardware. Suchservices may be centrally hosted functionality or a service applicationthat may receive requests and provide output to other services orconsumer devices. For example, services may be considered on-demandcomputing that is hosted in a server, cloud, grid, or cluster computingsystem. An application program interface (API) may be provided for eachservice to enable a second service to send requests to and receiveoutput from the first service. Such APIs may also allow third parties tointerface with the service and make requests and receive output from theservice.

FIG. 6 is a flow diagram illustrating one example of a technology torecommend an item. As is shown in box 610, after a user has consumed anitem (i.e., viewed or listened to a media file, and/or purchased orrented a product or service.), a recommendation interface control may bepresented to a user allowing a user to add a name of the item toanother's recommendation list. For example, after a user has consumed anitem, an interface control may be presented to the user on a clientdevice. The client device may be a desktop computer, laptop, tablet,smartphone, cellular phone, etc. The item consumed by the user mayinclude a media file, an item that the user has purchased from an onlineretailer, a service, or any other item that a user may consume using aclient device. The recommendation interface control may allow the userto share a recommendation for the item by activating or selecting thecontrol. Depending upon the client device, a number of different actionsmay activate the recommendation interface control, such as clicking,touching (e.g., in a touch sensitive device), pointing, selecting, aswell as other actions.

As is shown in box 620, individuals available to receive arecommendation are identified and made available to the user to select.For example, after the user has activated the recommendation interfacecontrol in the previous operation, an individual who is willing toreceive a recommendation from the user may be identified and presentedto the user. The individual may be a friend, family member, coworker, orany other person who has given the user permission to addrecommendations to the associate's recommendation list. In addition, agroup of individuals defined by an individual's relationship to the usermay be identified. For example, a user may create a group of individualsthat comprises of family members, or a group of coworkers. As may beappreciated, a user may create any number of groups with whom the usermay want to share recommendations.

In addition, group of individuals may be identified where anindividual's consumption patterns may be similar to the consumptionpatterns of other individuals within the group. Consumption patterns mayreveal information that identifies an individual's preferences. Forinstance, an individual's consumption patterns may indicate that theindividual prefers movies that are categorized as romantic comedies. Theindividual may be identified along with other individuals that have apreference for movies that are romantic comedies. The individuals mayform a group of individuals that include the user, who have a commonpreference. In addition, the consumption patterns of the group mayreveal an item category that is the same as the item category of theitem. In other words, the common preference that is similar toindividuals among the group matches the item category of the item theuser consumed. For example, where the user has consumed a movie that hasa category of romantic comedies, individuals in the group identified inthe process above may have a preference for romantic comedies. The groupthen may be presented to the user to select an individual's name fromthe next operation.

In another example, the user may have individuals that follow orsubscribe to recommendations that the user may make. For example, a usermay be a celebrity, or may be someone who is known within a community,or may simply have a following of individuals. The individuals thatsubscribe to a user's recommendations may be identified so that theindividuals are available to the user to select. For example, a user maybe a well-known film critic that may share recommendations for moviesthat the film critic highly recommends. The individuals that maysubscribe to the film critic's recommendations may be identified andpresented to the film critic in a user interface to allow the filmcritic to select one or more of these individuals to receive the filmcritic's recommendation. Thus, where the film critic may want torecommend the movie “To Kill a Mockingbird” to the film critic'ssubscribers, the individuals that subscribe to the film critic'srecommendations may be identified and made available to the film criticto select.

As is shown in box 630, an individual that the user may have selectedmay be identified. Using a client device, the user may select theindividual that the user wishes to share an item recommendation with.The individual that the user has selected may then be identified by theprocess. In addition to selecting an individual, the user may select aplurality of individuals or a group of individuals as described above.

As is shown in box 640, the name of the item that the user may berecommending may be added to the selected individual's recommendationlist. For example, where the user recently consumed a media item, thename of the media item may be added to a recommendation list thatbelongs to the individual selected by the user in the previous process.

A recommendation list may contain a number of recommendations from aplurality of recommenders. Recommendations may be for anything that arecommender may consume on the client device. In addition to adding thename of an item to a recommendation queue, a user may add a text commentalong with the name of the item to the individual's recommendationqueue. For example, a user may add the text comment “Thought you mightlike this” to a recommendation for a product that the user believes anindividual may be interested in. The text comment along with the name ofthe item may be added to the individual's recommendation list.

In addition, where a group of individuals defined by an individual'srelationship to the user may have been selected by the user, the name ofthe item may be added to one recommendation list that is accessible tothe group of individuals. For example, where the group selected by theuser is comprised of the user's family members, the user may add a nameof an item to a recommendation list that is accessible to the familymember group. Where the grouping of individuals is accomplished by usingan individual's consumption pattern information, the name of the itemmay be added to a plurality of recommendation queues for the group. Forexample, individuals of the group may receive the recommendation in theindividual's own recommendation queue.

In another example, a visual indicator may be incorporated into anitem's description informing an individual that the item has been addedto the individual's recommendation queue. To illustrate, while browsingfor new items to purchase, download or rent, a visual indicator mayinform an individual viewing the item description that the item has beenadded to the individual's recommendation list. Specifically, highlightedtext, an icon, or an animation may notify the individual that the itemhas been added to the individual's recommendation queue. The visualindicator may allow the individual to know what has been recommendedprior to accessing the individual's recommendation queue.

While the flow diagrams illustrated in FIG. 6 may imply a specific orderof execution, the order of execution may differ from what isillustrated. For example, the order of two or more blocks may berearranged relative to the order shown. Further, two or more blocksshown in succession may be executed in parallel or with partialparallelization. In some configurations, one or more blocks shown in theflow chart may be omitted or skipped. Any number of counters, statevariables, warning semaphores, or messages might be added to the logicalflow for purposes of enhanced utility, accounting, performance,measurement, troubleshooting or for similar reasons.

FIG. 7 is an example of an environment 700 for implementing the currenttechnology. As will be appreciated, although a web-based environment isused for the purposes of explanation, different environments may be usedto implement various examples. The environment 700 includes a clientdevice 705, which may include any device capable of sending andreceiving information over a network 720. Examples of a client device705 include personal computers, tablet computers, laptop computers,smartphones, cellular phones and the like. The network 720 may includeany appropriate network, including an intranet, the Internet, a cellularnetwork, a local area network, or any other network or combinationthereof. Communication over the network may be enabled by wired orwireless connections, and combinations thereof. The example environment700 includes a web server 725 for receiving requests and serving contentin response thereto. As would be apparent, an alternative server deviceserving a similar purpose may be used for other types of networks.

The example environment 700 includes at least one application server 730and a data store 735. It should be understood that several applicationservers, layers, or other elements, processes, or components may be usedthat may interact to perform tasks such as obtaining data from a datastore. The data store 735 may be representative of a plurality of datastores as can be appreciated. The application server 730 may provideaccess control services in cooperation with the data store and may beable to generate content such as text, graphics, audio, and/or video tobe transferred or made available to the user, which may be served to theuser by the web server 725 in the form of HTML, XML, or anotherappropriate structured language. Handling of all requests, responses anddelivery of content between the client device 705 and the applicationserver 730 may be handled by the web server 725.

The data store 735 may include data tables, databases, or other storagemechanisms and media for storing data relating to this technology. Inthis example, the data store 735 may include mechanisms for storing anitem library 740 and an association store 745, as described earlier. Thestored information may be used to serve content to client devices 705.The data store 735 may also include a mechanism for storing informationreceived from the client devices 705.

The example environment 700 is a distributed computing environmentutilizing several computer systems and components that areinterconnected via communication links, using one or more computernetworks or direct connections. It will be appreciated that such asystem may operate equally well in a system having fewer or greaternumber of components than are illustrated in FIG. 7. Thus the depictionof the environment 700 should be taken as being illustrative in natureand not limiting to the scope of the disclosure.

FIG. 8 illustrates a computing device 810 on which modules of thistechnology may execute. A computing device 810 is illustrated on which ahigh level example of the technology may be executed. The computingdevice 810 may include one or more processors 815 that are incommunication with memory devices 820. The computing device 810 mayinclude a local communication interface 850 for the components in thecomputing device. For example, the local communication interface may bea local data bus and/or any related address or control busses as may bedesired.

The memory device 820 may contain modules that are executable by theprocessor(s) 815 and data for the modules. Located in the memory device820 are modules executable by the processor. For example, arecommendation service module 830, a data item deliver service module835 and other modules may be located in the memory device 820. Themodules may execute the functions described earlier. A data store 825may also be located in the memory device 820 for storing data related tothe modules and other applications along with an operating system thatis executable by the processor(s) 815.

Other applications may also be stored in the memory device 820 and maybe executable by the processor(s) 815. Components or modules discussedin this description that may be implemented in the form of softwareusing high programming level languages that are compiled, interpreted orexecuted using a hybrid of the methods.

The computing device may also have access to I/O (input/output) devices840 that are usable by the computing devices. An example of an I/Odevice is a display screen 855 that is available to display output fromthe computing devices. Other known I/O device may be used with thecomputing device as desired. Networking devices 845 and similarcommunication devices may be included in the computing device. Thenetworking devices 845 may be wired or wireless networking devices thatconnect to the internet, a LAN, WAN, or other computing network.

The components or modules that are shown as being stored in the memorydevice 820 may be executed by the processor(s) 815. The term“executable” may mean a program file that is in a form that may beexecuted by a processor 815. For example, a program in a higher levellanguage may be compiled into machine code in a format that may beloaded into a random access portion of the memory device 820 andexecuted by the processor 815, or source code may be loaded by anotherexecutable program and interpreted to generate instructions in a randomaccess portion of the memory to be executed by a processor. Theexecutable program may be stored in any portion or component of thememory device 820. For example, the memory device 820 may be randomaccess memory (RAM), read only memory (ROM), flash memory, a solid statedrive, memory card, a hard drive, optical disk, floppy disk, magnetictape, or any other memory components.

The processor 815 may represent multiple processors and the memory 820may represent multiple memory units that operate in parallel to theprocessing circuits. This may provide parallel processing channels forthe processes and data in the system. The local interface 850 may beused as a network to facilitate communication between any of themultiple processors and multiple memories. The local interface 850 mayuse additional systems designed for coordinating communication such asload balancing, bulk data transfer and similar systems.

While the flowcharts presented for this technology may imply a specificorder of execution, the order of execution may differ from what isillustrated. For example, the order of two more blocks may be rearrangedrelative to the order shown. Further, two or more blocks shown insuccession may be executed in parallel or with partial parallelization.In some configurations, one or more blocks shown in the flow chart maybe omitted or skipped. Any number of counters, state variables, warningsemaphores, or messages might be added to the logical flow for purposesof enhanced utility, accounting, performance, measurement,troubleshooting or for similar reasons.

Some of the functional units described in this specification have beenlabeled as modules, in order to more particularly emphasize theirimplementation independence. For example, a module may be implemented asa hardware circuit comprising custom VLSI circuits or gate arrays,off-the-shelf semiconductors such as logic chips, transistors, or otherdiscrete components. A module may also be implemented in programmablehardware devices such as field programmable gate arrays, programmablearray logic, programmable logic devices or the like.

Modules may also be implemented in software for execution by varioustypes of processors. An identified module of executable code may, forinstance, comprise one or more blocks of computer instructions, whichmay be organized as an object, procedure, or function. Nevertheless, theexecutables of an identified module need not be physically locatedtogether, but may comprise disparate instructions stored in differentlocations which comprise the module and achieve the stated purpose forthe module when joined logically together.

Indeed, a module of executable code may be a single instruction, or manyinstructions and may even be distributed over several different codesegments, among different programs and across several memory devices.Similarly, operational data may be identified and illustrated hereinwithin modules and may be embodied in any suitable form and organizedwithin any suitable type of data structure. The operational data may becollected as a single data set, or may be distributed over differentlocations including over different storage devices. The modules may bepassive or active, including agents operable to perform desiredfunctions.

The technology described here may also be stored on a computer readablestorage medium that includes volatile and non-volatile, removable andnon-removable media implemented with any technology for the storage ofinformation such as computer readable instructions, data structures,program modules, or other data. Computer readable storage media include,but is not limited to, RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, magnetic cassettes, magnetic tapes, magnetic disk storage orother magnetic storage devices, or any other computer storage mediumwhich may be used to store the desired information and describedtechnology.

The devices described herein may also contain communication connectionsor networking apparatus and networking connections that allow thedevices to communicate with other devices. Communication connections arean example of communication media. Communication media typicallyembodies computer readable instructions, data structures, programmodules and other data in a modulated data signal such as a carrier waveor other transport mechanism and includes any information deliverymedia. A “modulated data signal” means a signal that has one or more ofits characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example and not limitation,communication media includes wired media such as a wired network ordirect-wired connection and wireless media such as acoustic, radiofrequency, infrared and other wireless media. The term computer readablemedia as used herein includes communication media.

Reference was made to the examples illustrated in the drawings andspecific language was used herein to describe the same. It willnevertheless be understood that no limitation of the scope of thetechnology is thereby intended. Alterations and further modifications ofthe features illustrated herein and additional applications of theexamples as illustrated herein are to be considered within the scope ofthe description.

Furthermore, the described features, structures, or characteristics maybe combined in any suitable manner in one or more examples. In thepreceding description, numerous specific details were provided, such asexamples of various configurations to provide a thorough understandingof examples of the described technology. It will be recognized, however,that the technology may be practiced without one or more of the specificdetails, or with other methods, components, devices, etc. In otherinstances, well-known structures or operations are not shown ordescribed in detail to avoid obscuring aspects of the technology.

Although the subject matter has been described in language specific tostructural features and/or operations, it is to be understood that thesubject matter defined in the appended claims is not necessarily limitedto the specific features and operations described above. Rather, thespecific features and acts described above are disclosed as exampleforms of implementing the claims. Numerous modifications and alternativearrangements may be devised without departing from the spirit and scopeof the described technology.

Reference was made to the examples illustrated in the drawings andspecific language was used herein to describe the same. It willnevertheless be understood that no limitation of the scope of thetechnology is thereby intended. Alterations and further modifications ofthe features illustrated herein and additional applications of theexamples as illustrated herein are to be considered within the scope ofthe description.

Furthermore, the described features, structures, or characteristics maybe combined in any suitable manner in one or more examples. In thepreceding description, numerous specific details were provided, such asexamples of various configurations to provide a thorough understandingof examples of the described technology. One skilled in the relevant artwill recognize, however, that the technology may be practiced withoutone or more of the specific details, or with other methods, components,devices, etc. In other instances, well-known structures or operationsare not shown or described in detail to avoid obscuring aspects of thetechnology.

Although the subject matter has been described in language specific tostructural features and/or operations, it is to be understood that thesubject matter defined in the appended claims is not necessarily limitedto the specific features and operations described above. Rather, thespecific features and acts described above are disclosed as exampleforms of implementing the claims. Numerous modifications and alternativearrangements may be devised without departing from the spirit and scopeof the described technology.

What is claimed is:
 1. A method to recommend a media item, comprising:under control of a processor and memory configured with executableinstructions, presenting a recommendation interface control to add atitle of the media item to an associate's social queue after a user hasaccessed the media item; identifying at least one associate to form anassociate list available to receive a recommendation; identifying atleast one selected associate from the associate list to receive therecommendation; adding the title of the media item to a social queue forthe at least one selected associate to make a recommendation for themedia item; and including a visual indicator in a media item descriptionfor the media item that informs the at least one selected associate thatthe title of the media item has been added to the social queue for theat least one selected associate.
 2. The method as in claim 1, furthercomprising presenting the associate's social queue with the added titleof the media item when the social queue is accessed by the associate. 3.The method as in claim 1, further comprising presenting an acceptanceinterface control to an associate to allow the associate to accept thetitle of the media item added to the associate's social queue.
 4. Themethod as in claim 3, further comprising assigning a success rate to arecommender where the success rate is determined by a number ofrecommendations that are accepted or rejected by an associate.
 5. Themethod as in claim 1, wherein identifying at least one associate furthercomprises identifying a group of associates defined by an associate'srelationship to the user.
 6. The method as in claim 5, wherein addingthe title of the media item to the at least one selected associate'ssocial queue further comprises adding the title of the media item to aplurality of social queues for the group of associates.
 7. The method asin claim 1, wherein identifying at least one associate further comprisesidentifying a group of associates where the user belongs to a group ofassociates having an interest in a topical category shared among thegroup of associates.
 8. The method as in claim 7, wherein the interestin the topical category shared among the group of associates is that ofa topical category of the media item.
 9. The method as in claim 8,wherein adding the title of the media item to the at least one selectedassociate's social queue further comprises adding the title of the mediaitem to a social queue that is accessible to the group of associates.10. The method as in claim 1, wherein adding the title of the media itemto the at least one selected associate's social queue further comprisesadding a text comment along with the title of the media item to theassociate's social queue.
 11. A method to recommend items, comprising:under the control of a processor and memory configured with executableinstructions, presenting a recommendation interface control to add aname of an item to another's recommendation list; identifying anindividual available to receive a recommendation; identifying a selectedindividual to receive the recommendation; adding the name of the item toa recommendation list for the selected individual; and including avisual indicator in a media item description for the media item thatinforms the selected individual that the name of the media item has beenadded to the recommendation list for the selected individual.
 12. Themethod as in claim 11, wherein identifying an individual furthercomprises identifying a group of individuals where the group is definedby a relationship that is shared among the individuals of the group. 13.The method as in claim 12, wherein adding the name of the item to anindividual's recommendation list further comprises adding the name ofthe item to a recommendation list that is accessible to the group ofindividuals.
 14. The method as in claim 11, wherein identifying theindividual further comprises identifying a group of individuals where anindividual's consumption patterns are similar to consumption patterns ofother individuals within the group.
 15. The method as in claim 11,wherein identifying a group of individuals further comprises identifyinga group of individuals having consumption patterns that match an itemcategory of the item.
 16. The method as in claim 15, wherein adding thename of the item to the individual's recommendation list furthercomprises adding the name of the item to a plurality of recommendationlists for the group.
 17. The method as in claim 11, wherein identifyingan individual further comprises identifying a plurality of individualsthat subscribe to a recommender's recommendations.
 18. The method as inclaim 11, wherein adding the name of the item to the individual'srecommendation list further comprises adding a text comment along withthe name of the item to the individual's recommendation list.
 19. Asystem to recommend an item comprising: a computing device; anassociation store stored in a data store accessible to the computingdevice, the association store including a plurality of associatedassociates and social item queues; an item library stored in a datastore accessible to the computing device, the item library storing itemdescriptions for a plurality of items; an item delivery service toinstruct delivery of items from the item library to a client device overa network; a recommendation service that is executable in the computingdevice, the recommendation service comprising; logic that determines anitem consumed via a client; logic that sends to the client a pluralityof associates from the association store; logic that obtains a selectedassociate from the plurality of associates from the client; logic thatstores in a social item queue for the selected associate a name of anitem recommended; and logic that includes a visual indicator in a mediaitem description for the media item that informs the selected associatethat the title of the media item has been added to the social item queuefor the selected associate.
 20. The system as in claim 19, wherein theassociation store further comprises a plurality of associate groupswhere the plurality of associate groups are defined by an associate'srelationship to other associates in the plurality of associate groups.21. The system as in claim 19, wherein the association store furthercomprises a plurality of categorized groups of associates where theplurality of categorized groups of associates is defined by a topicalcategory.
 22. The system as in claim 19, wherein the recommendationservice further comprises logic that obtains a text comment entered by auser; and logic that stores in the selected associate's social itemqueue the text comment.
 23. The system as in claim 19, wherein therecommendation service further comprises logic that stores a descriptionof the item recommended in a selected associate's social item queue. 24.The system as in claim 19, wherein logic that sends to the client theplurality of associates from the association store further compriseslogic that sends to the client a plurality of associates that have aninterest in the item consumed on the client, where an associate'sinterest is determined by an associate's consumption patterns.